﻿using System.IO;
using System.Windows;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using TianlalaHSB.Utils;

namespace TianlalaHSB.ViewModels;

//ViewModelBase类：简化了视图模型的创建和管理。
//RelayCommand类：用于实现命令绑定，使得视图中的操作可以与视图模型中的命令进行关联。
//ObservableObject类：用于实现属性更改通知，使得视图模型中的属性变化可以及时通知到视图。
public class LoginViewModel : ObservableObject
{
    private string? _password;
    private string? _username;

    public LoginViewModel()
    {
        LoginCommand = new RelayCommand(Login);
    }

    public string? username
    {
        get => _username;
        set => SetProperty(ref _username, value);
    }

    public string? password
    {
        get => _password;
        set
        {
            if (_password == value) return;
            _password = value;
            OnPropertyChanged();
        }
    }

    public IRelayCommand LoginCommand { get; }

    // 委托或事件定义
    public Action CloseWindowAction { get; set; }

    private void Login()
    {
        var isValid = _username == "admin" && _password == "tll@123";
        if (isValid)
        {
            File.WriteAllText("TianlalaHSB.ini", NetworkHelper.GetAllActiveMacAddresses().First());

            // 打开主界面（这里假设MainWindow是你要打开的主界面）
            var mainWindow = new MainWindow();
            mainWindow.Show();

            // 关闭登录窗口
            CloseWindowAction?.Invoke();
            //this.Close();
        }
        else
        {
            // 显示错误消息
            MessageBox.Show("无效的用户名或密码.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
        }
    }
}